package com.fare.taluo.application.plane.city;

import java.util.List;

import com.dayatang.querychannel.support.Page;
import com.fare.taluo.vo.config.city.CityLineSelectVO;
import com.fare.taluo.vo.core.CityEntityVO;

public interface CityQueryApplication {
	/**
	 * 查询所有地区城市信息
	 * @return
	 */
	public List<CityEntityVO> findAll();
	/**
	 * 根据城市三字码查询出城市信息
	 * @param cityCode
	 * @return
	 */
	public CityEntityVO findByCityCode(String cityCode);
	/**
	 * 根据机场三字码查询出城市信息
	 * @param airPortCode
	 * @return
	 */
	public CityEntityVO findByPortCode(String portCode);
	/**
	 * 创建城市选择框信息
	 */
	public void createCitySelect();
	/**
	 * 根据父节点获得其下的子地区
	 * @param id
	 * @return
	 */
	public List<CityEntityVO> findByPid(Long pid);
	
	/**
	 * 分页方法
	 * @param pid
	 * @param currentPage
	 * @param pageSize
	 * @return
	 */
	public Page<CityEntityVO> pageQuery(Long pid,int currentPage,
			int pageSize);
	
	/**
	 * 根据ID获得
	 * @param id
	 * @return
	 */
	public CityEntityVO findById(Long id);
	/**
	 * 根据城市编码获得其下所有的机场编码，包括自身的城市编码 
	 * @return
	 */
	public List<String> getAllPortsByCity(String cityCode);
	/**
	 * 获得某个航空公司下的所有机场或城市信息
	 * @param hbasekey
	 * @return
	 */
	public List<CityLineSelectVO> getCitysByChannel(String hbasekey);
	public int getCitysByChannelLines(String hbasekey);
	
	public void saveOrUpdate(CityEntityVO vo);
	
	public void delete(CityEntityVO vo);
}
